Large and complex data processing networks are now commonplace. A typical such network may have hundreds or thousands of devices that are connected together. These devices can be workstation computers, server computers, switches, storage arrays, tape libraries, printers, routers and other such devices. The devices may be connected together by LANs that are, in turn, connected together by a wide area network, such as the Internet. An illustrative network configuration 100 is shown in FIG. 1. In this configuration, devices may be connected together by networks having several different protocols. For example, the computer 122, the Fibre Channel switch 114 and the disk array 116 each contain Ethernet cards 104, 109 and 112, respectively. These cards allow the devices to connect together and exchange information via an IP network 102, which could be the Internet, as schematically indicated by connections 106, 108 and 110. To facilitate identifying the devices, each device is typically assigned an IP network address.
In addition, the computer 122 can also by connected to the disk array 116 via another network with a different protocol, such as Fibre Channel. For example, computer 122 also has a Fibre Channel host bus adapter (HBA) 118 that allows it to connect to the Fibre Channel switch 114 via the Fibre Channel HBA 120 as shown schematically by connection 124. The switch 114, in turn, can connect the computer 122 to the disk array 116 via Fibre Channel HBA 121 as shown schematically by connection 130.
Fibre Channel switch 114 can also connect to other devices, such as a second Fibre Channel switch 134 or another disk array 142. For example, Fibre Channel switch 114 can connect, via Fibre Channel HBA 120, to Fibre Channel switch 134, via Fibre Channel HBA 136, as shown schematically by connection 126. Similarly, Fibre Channel switch 114 can connect, via Fibre Channel HBA 120, to disk array 142, via Fibre Channel HBA 140, as shown schematically by connection 128. Finally Fibre Channel switch 134 can also connect, via Fibre Channel 136 to disk array 142, via Fibre Channel HBA 140 as shown schematically by connection 138.
The diversity of devices and possible connections leads to extraordinarily complex network configuration that may have hundreds or thousands of devices connected together in very complex patterns. In most large network configurations, it is important to monitor the network devices, such as computers, switches, storage arrays, tape libraries, etc., and to ensure that problems related to these devices are detected and resolved promptly. In a large network, monitoring is performed by a monitoring application program operating in a central location under supervision of system administration staff.
Currently, it is difficult to compile a list of devices that must be monitored by such a monitoring application. For example, a system administrator could manually identify the network IP addresses of the devices that must be monitored and then update a property file with these addresses. The monitoring application can then read the property file to locate the devices. In a large network, a network monitoring application typically will monitor hundreds or thousands of devices. Thus, it is impractical for a system administrator to individually identify all of the devices that will be monitored. In addition, when some network addresses are modified, the system administrator must somehow recognize that the system has changed and reconfigure the monitoring application.
Consequently, an important aspect of such a monitoring application is the ability to quickly and automatically discover all devices that can be monitored. It is also important to provide the capability for a system administrator to select the type of devices to be monitored. For example, the administrator may decide to monitor only disk arrays manufactured by a specified vendor. This capability is important because the monitoring application may not provide support for all device types and, therefore, there is no need to monitor all device types.
Devices connected to a network typically can be discovered by a monitoring program by means of two different mechanisms. The first mechanism is to use a directory service, registry or lookup service. This mechanism works with devices that are registered in the lookup service, registry or directory service. Thus, system administration must insure that all devices are registered in a lookup service such as the Service Location Protocol (described in detail at http://www.ietf.org/rfc/rfc2165.txt) lookup service, the Jini lookup service described in the Jini specification located at http://www.jini.org/standards, or the Common Information Model Object Manager. After all devices have been registered, the monitoring application can look for references to the monitored devices in the registries. Unfortunately, lookup services are not often used to map device references to the device network addresses, except for the Domain Name System (DNS) (RFC 1034-1035) which is used to map the name of a network host to a network address. Thus, although many devices will be registered, the lookup service cannot be used to find the actual network address in most cases.
The second discovery mechanism uses a probe to sense whether a device exits at a given network address. In this mechanism, the system administrator provides a range of network addresses to the monitoring application. The monitoring application then sends a software probe to, or “pings”, each address in the address range. If a device exists at that address, it will respond, generally with information identifying itself. Thus, the monitoring application will discover the device at that address. This latter mechanism works whether the devices are mapped to a network address with a lookup service or not.
However, a problem with the probe mechanism is that the probe must be able to retrieve device description information directly from a device when it finds the device at a given address. Since the monitoring application cannot know in advance what type of device will be connected to the network, the probe system is typically limited to working with devices that use a network management protocol, such as the Simple Network Management Protocol (SNMP, RFC 1157), which allows a device to return identifying information to a requesting entity. If a device is encountered that does not use the management protocol that allows it to return identifying information, then the probe cannot retrieve information from the device and therefore cannot identify the device.